파이프 필터 아키텍처
IT 위키
더 많은 작업
파이프 필터 아키텍처(Pipe and Filter Architecture)는 데이터를 여러 처리 단계(Filter)로 나누어 순차적으로 가공하는 소프트웨어 아키텍처 패턴이다. 각 처리 단계는 독립적으로 동작하며, 이전 단계의 출력을 다음 단계의 입력으로 전달한다.
파이프 필터 아키텍처는 복잡한 데이터 처리 과정을 여러 개의 독립적인 처리 단계로 분리하는 구조이다.
각 단계는 특정 기능만 수행하며, 처리 결과를 다음 단계로 전달한다. 이때 데이터 전달 경로를 파이프(Pipe), 데이터를 처리하는 모듈을 필터(Filter)라고 한다.
UNIX 운영체제의 파이프(pipe) 개념이 대표적인 예시이다.
예:
cat file.txt | grep hello | sort
위 예시에서:
- cat
- 데이터 읽기
- grep
- 문자열 필터링
- sort
- 정렬 수행
각 명령은 독립적으로 동작하면서 데이터를 순차적으로 처리한다.
파이프 필터 구조는 일반적으로 다음 순서로 동작한다.
- 입력 데이터 생성
- 첫 번째 필터에서 처리
- 파이프를 통해 다음 필터로 전달
- 다음 필터에서 추가 처리
- 최종 결과 출력
각 필터는 이전 필터의 내부 동작을 알 필요 없이 입력과 출력만 처리한다.
- 데이터 흐름 중심 구조
- 기능 단위 분리 가능
- 모듈 독립성 높음
- 재사용성 우수
- 순차 처리 구조
- 스트림 처리에 적합
| 구분 | 파이프 필터 아키텍처 | MVC |
|---|---|---|
| 중심 개념 | 데이터 흐름 | 역할 분리 |
| 처리 방식 | 순차 처리 | 사용자 인터페이스 중심 |
| 주요 목적 | 데이터 가공 | UI와 로직 분리 |
| 대표 분야 | 데이터 처리, 컴파일러 | 웹 애플리케이션 |
| 구분 | 파이프 필터 | 이벤트 기반 아키텍처 |
|---|---|---|
| 흐름 구조 | 순차 데이터 흐름 | 이벤트 중심 |
| 처리 방식 | 단계별 처리 | 비동기 이벤트 처리 |
| 연결 방식 | 파이프 연결 | 이벤트 전달 |
| 주요 활용 | 데이터 처리 | GUI, 메시징 시스템 |
- UNIX Shell Pipeline
- 컴파일러 구조
- ETL 시스템
- 로그 처리 시스템
- 영상 처리 파이프라인
- 스트림 분석 시스템
- 파이프 필터 아키텍처는 데이터를 단계별로 처리하는 구조이다.
- 필터는 데이터를 처리하는 독립 모듈이다.
- 파이프는 필터 간 데이터를 전달한다.
- UNIX 파이프 명령은 대표적인 예시이다.
- 필터 간 결합도가 낮다.
- 데이터 흐름 중심 구조이다.
- 컴파일러 구조에서 자주 사용된다.